package com.wsh.sms.mapper;

import com.wsh.sms.entity.MonthSalary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author wsh
 */
@Mapper
@Repository
public interface MonthSalaryMapper {

    /**
     * 获取一位员工的所有工资记录
     * @param number 员工的工号
     * @return 员工所有的月工薪
     */
    List<MonthSalary> getMonthSalaryByNumber(@Param("number") String number);

    /**
     * 获取一位员工一个月的工资记录
     * @param number 员工的工号
     * @param year 年份
     * @param month 月份
     * @return 员工一个月的月工薪
     */
    MonthSalary getOneMonthSalaryByNumber(@Param("number") String number,@Param("year") int year,@Param("month") int month);

    /**
     * 更新一个员工一个月的薪水
     * @param number 员工的工号
     * @param year 年份
     * @param month 月份
     * @param basicSalary 底薪
     * @param percentage 提成
     * @param subsidy 补助
     * @return 是否成功
     */
    int updateEmployeeSalary(@Param("number") String number, @Param("year") int year, @Param("month") int month, @Param("basicSalary") double basicSalary, @Param("percentage") double percentage, @Param("subsidy") double subsidy,@Param("lastYear") String lastYear,@Param("lastMonth") String lastMonth);

    /**
     * 添加一个员工一个月的薪水
     * @param number 员工的工号
     * @param year 年份
     * @param month 月份
     * @param basicSalary 底薪
     * @param percentage 提成
     * @param subsidy 补助
     * @return 是否成功
     */
    int addMonthSalary(@Param("number") String number, @Param("year") int year, @Param("month") int month, @Param("basicSalary") double basicSalary, @Param("percentage") double percentage, @Param("subsidy") double subsidy);

    /**
     * 删除一个员工一个月的薪水
     * @param number 员工的工号
     * @param year 年份
     * @param month 月份
     * @return 是否成功
     */
    int deleteMonthSalary(@Param("number") String number, @Param("year") int year, @Param("month") int month);
}
